2012/07/02

[Data Analytics] 最遙遠的距離

這篇不是要談同名的電影,而是要講機器學習演算法裡的一個觀念:「距離」(distance metric),轉錯台的觀眾可以繼續轉台,謝謝。

之前的一篇文章「機器學習學些什麼」,談到以目的來說,機器學習演的算法可以區分為「分類」(classification)跟「分群」(clustering)兩大類。然而無論是分類或是分群,大多數的演算法都需要用到一個重要的概念:「距離」。

舉例來說,怎麼判斷兩個水果像不像,該不該當成同一類?我們可能會從大小、形狀、顏色或氣味等等特徵的相似與否來做綜合判斷,而這些評判的結果,就是所謂的「距離」。比方說,橘子跟柳丁的距離就比跟西瓜的距離來得近,也就是說:相似度(similarity)越高,距離(distance)就越近。

有的特徵差異是很具體、很容易了解的,例如地圖上的距離,年齡、身高、和體重的差異等等;但有些特徵的差異卻是很抽象而難以表達的,例如愛好食物的種類、職業、國籍,等等。究竟愛吃水果跟愛吃牛排的差異,是不是大於愛吃素跟愛吃雞排的差異?這實在很難比較。

讓我們從實際的例子來看這件事:一個人的國籍是英國,他是跟法國人距離比較近呢,還是跟美國人比較近?從地圖上來看,英國應該是跟法國比較接近,但是從語言上來看卻是美國人跟英國比較相似。這又凸顯了「距離」的另一個問題:當衡量的標準不同的時候,距離也會跟著不同。

要克服這些「定義不明確」、「定義會改變」的狀況,目前比較通用的方式是「以果為因」,讓電腦從大量分類或分群好的資料裡去學習出距離的定義(learning distance metric from data),除了在實務上有效之外,在理論上也符合貝氏機率的觀點。

講了半天,好像還沒講到最遙遠的距離是什麼,這樣有點對不起這個標題。

傳統上,距離的定義是「對稱」的,也就是「我到你的距離」跟「你到我的距離」是一樣的。這在理解上非常容易,台北到高雄的距離,怎麼會跟高雄到台北的距離不同呢?但是近年來,這個限制受到了挑戰,甚至已經被從 metric 的必要條件裡移除了。

我們不妨用另一個例子來看這件事。假設今天吹南風,我坐飛機從台北到高雄需要的時間,跟坐飛機從高雄到台北的時間,是不會一樣的。所以如果我們要量測的「距離」是空中交通所需的時間,那麼自然是不會對稱的。

不對稱的距離,應該也算是種最遙遠的距離吧。

沒有留言: